//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// 
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Lesser General Public License for more details.
// 
// You should have received a copy of the GNU Lesser General Public License
// along with this program.  If not, see http://www.gnu.org/licenses/.
// 

#ifndef __PHYINTERSIMU_GENERATOR_H_
#define __PHYINTERSIMU_GENERATOR_H_

#include <omnetpp.h>
#include <cArray.h>
#include <map>
#include <vector>
#include <deque>
#include "Request.h"

/**
 * TODO - Generated class
 */
class Generator: public cSimpleModule {
private:
	std::map<int, std::vector<Request *> *> mapStartTimeRequests;
	std::map<int, std::deque<Request *> *> mapSenderIdRequests;
	std::map<int, Request *> mapIdRequests;
	std::vector<int> alStartTimes;
	cMessage *generateDataMsg;
	simtime_t minSimuTimeSlot;
	int count;
	simtime_t sendEndSimuMsgTime;
public:
	Generator();
	~Generator();
protected:
	virtual void initialize();
	virtual void handleMessage(cMessage *msg);
};

#endif
